#ifndef GRAPHVISITOR_H_
#define GRAPHVISITOR_H_

#include "core/Vertex.h"

/*
 *	Clase que sirve de iterador interno para los grafos.
 *	Consta de dos metodos que son ejecutados de acuerdo a lo que indique el metodo de
 *	visita que se utilice sobre el grafo.
 */
class GraphVisitor {
public:

	/* Constructor por defecto. */
	GraphVisitor() {}
	/* Destructor. */
	virtual ~GraphVisitor() {}
	/* Metodo de visita para el vertice. */
	virtual void visitVertex(Vertex* vertex) = 0;
	/* Metodo de visita para la arista. */
	virtual void visitEdge(Edge* edge) = 0;
};

#endif /* GRAPHVISITOR_H_ */
